
/**
 * 检查表单对象的必填字段
 * @param {Object} formData - 表单数据对象
 * @param {Object} requiredFields - 必填字段配置对象，格式为 { 字段名: 提示信息 }
 * @returns {Array} - 未填写的字段路径及提示信息数组
 */
export function errForm(formData, requiredFields) {
  const missingFields = [];

  /**
   * 递归检查对象属性
   * @param {Object} data - 当前检查的数据对象
   * @param {Object} required - 当前层级的必填字段配置
   * @param {string} parentPath - 父级路径，用于构建完整路径
   */
  function checkNestedFields(data, required, parentPath = '') {
    // 遍历当前层级的所有必填字段
    for (const [field, message] of Object.entries(required)) {
      const fullPath = parentPath ? `${parentPath}.${field}` : field;
      const value = data?.[field];

      // 检查值是否为空
      const isEmpty = 
        value === undefined || 
        value === null || 
        (typeof value === 'string' && value.trim() === '') ||
        (Array.isArray(value) && value.length === 0);

      if (isEmpty) {
        // 记录未填写的字段
        missingFields.push({
          field: fullPath,
          message: message || `请填写${fullPath}`
        });
      } else if (typeof value === 'object' && value !== null) {
        // 如果值是对象且非空，递归检查子字段
        // 获取子对象的必填字段配置（如果有）
        const nestedRequired = requiredFields[fullPath];
        if (nestedRequired && typeof nestedRequired === 'object') {
          checkNestedFields(value, nestedRequired, fullPath);
        }
      }
    }
  }

  checkNestedFields(formData, requiredFields);
return  missingFields  
 
}
/**
 * 手机号验证函数
 * @param {string} telePhone - 待验证的手机号
 * @param {object} options - 配置选项
 * @param {boolean} options.allowEmpty - 是否允许为空，默认false
 * @param {string} options.errorMsg - 自定义错误提示文本
 * @returns {boolean} - 验证结果
 */
export function checkTelePhone(telePhone, options = {}) {
  const { allowEmpty = false, errorMsg = '手机号格式不正确' } = options;
  
  // 处理空值情况
  if (!telePhone || telePhone.trim() === '') {
    return allowEmpty;
  }
  
  // 去除空格和分隔符
  const cleanPhone = telePhone.replace(/[\s\-()]/g, '');
  
  // 正则验证：11位数字，以1开头，第二位为3-9
  const isValid = /^1[3-9]\d{9}$/.test(cleanPhone);
  
  // 显示错误提示
  if (!isValid) {
    uni.showToast({
      title: errorMsg,
      icon: 'none',  // 明确显示"none"图标
      duration: 2000
    });
  }
  
  return isValid;
}
